%% 1. 加载地图图像
map_path = 'bup_shahe_map.png';
img = imread(map_path);
if isempty(img)
    error('错误：未找到地图文件！请检查路径。');
end

%% 2. 显示地图（修正Y轴方向）
figure('Name', '北邮沙河校区 - 节点标记', 'Position', [100 100 800 600]);
imshow(img);
axis on;
grid on;
set(gca, 'YDir', 'reverse');  % Y轴方向：上→下（与图像像素坐标系一致）
xlabel('像素坐标 X');
ylabel('像素坐标 Y');
title('步骤：① 点击红色起点（按回车结束） ② 点击蓝色节点（按回车结束）');
hold on;

%% 3. 交互式标记节点
% --- 标记红色起点 ---
disp('提示：点击红色起点（按回车结束）...');
red_nodes = ginput;
if ~isempty(red_nodes)
    scatter(red_nodes(:,1), red_nodes(:,2), 60, 'r', 'filled');
    for i = 1:size(red_nodes,1)
        text(red_nodes(i,1)+10, red_nodes(i,2), sprintf('起点%d', i), 'Color','r', 'FontWeight','bold');
    end
end

% --- 标记蓝色节点 ---
disp('提示：点击蓝色节点（按回车结束）...');
blue_nodes = ginput;
if ~isempty(blue_nodes)
    scatter(blue_nodes(:,1), blue_nodes(:,2), 40, 'b', 'filled');
    for i = 1:size(blue_nodes,1)
        text(blue_nodes(i,1)+10, blue_nodes(i,2), sprintf('节点%d', i), 'Color','b');
    end
end

%% 4. 保存节点坐标
save('campus_nodes.mat', 'red_nodes', 'blue_nodes');
disp('节点坐标已保存到 campus_nodes.mat！');

hold off;